#ifndef CIRCLECOLLIDER_H
#define CIRCLECOLLIDER_H

#include "core/GameObject.h"
#include "components/Collider.h"
#include "types/Vector2D.h"
#include "types/Rect.h"
#include "types/Collision.h"
#include "components/colliders/CircleCollider.h"
#include "components/colliders/BoxCollider.h"

namespace SolidityEngine {

class CircleCollider : public Collider
{
    float _radius;
    Vector2D _offset;
    public:
        CircleCollider(float radius=10, const Vector2D& offset=Vector2D(0,0));

        virtual ~CircleCollider();

        float Radius() const{return _radius;};
        float& Radius() {return _radius;};

    private:
        Vector2D _GetCenter() const;
        Rect _GetBounds() const;
        Collision_ptr _Test(Collider* collider);
        CircleCollider* _Clone();

};

};
#endif // CIRCLECOLLIDER_H
